const api = require('../../api/index.js');
const app = getApp();
Component({
  options: {
    addGlobalClass: true
  },
  /**
   * 组件的属性列表
   */
  properties: {
    isShowLoginLayer: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    userInfo: {},
    //验证是否getUserInfo
    isGetUserInfo: wx.canIUse('button.open-type.getUserInfo'),
    //验证是否getUserProfile
    isGetUserProfile: wx.canIUse('getUserProfile'),
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //获取手机号码
    // getPhoneNumber(e) {
    //   if (app.globalData.userLoginState) {
    //     wx.showToast({
    //       title: '已登录',
    //       icon: 'none'
    //     })
    //     this.setData({
    //       isShowLoginLayer: false
    //     })
    //     return;
    //   }
    //   if (e.detail.errMsg == "getPhoneNumber:ok") {
    //     wx.showLoading({
    //       title: '正在登录',
    //       mask: true
    //     })
    //     // 登入提示
    //     app.globalData.loginTips = true;
    //     var callbackFun = () => {
    //       wx.checkSession({
    //         success: () => {
    //           app.request({
    //             url: '/wechat/wxDecryption',
    //             method: 'POST',
    //             data: {
    //               encryptedData: e.detail.encryptedData,
    //               iv: e.detail.iv,
    //               sessionkey: app.globalData.userInfo.sessionKey
    //             }
    //           }).then((res) => {
    //             app.globalData.userInfo.tel = res.data;
    //             this.data.userInfo.tel = res.data;
    //             this.setData({
    //               isShowLoginLayer: false,
    //               userInfo: this.data.userInfo
    //             })
    //             app.login().then(resp => {
    //               //新用户需要获取微信用户信息
    //               if (app.globalData.userInfo.isNewUser) {
    //                 this.setData({
    //                   isShowLoginLayer: true
    //                 })
    //                 wx.hideLoading();
    //               } else {
    //                 this.triggerEvent('loginok', app.globalData.userInfo)
    //               }
    //             }).catch((err) => {
    //               wx.showToast({
    //                 title: err.msg,
    //                 icon: 'error',
    //                 duration: 2000
    //               })
    //             });
    //           }).catch((err) => {
    //             wx.showToast({
    //               title: err.msg,
    //               icon: 'none',
    //               duration: 2000
    //             })
    //           });
    //         },
    //         fail: () => {
    //           wx.showToast({
    //             title: 'checkSession error',
    //             icon: 'error',
    //             duration: 2000
    //           })
    //         }
    //       })
    //     }
    //     //没有sessionkey 
    //     if (!app.globalData.userInfo || !app.globalData.userInfo.sessionKey) {
    //       app.getOpenId().then(() => {
    //         callbackFun();
    //       });
    //     } else {
    //       callbackFun();
    //     }
    //   } else {
    //     wx.hideLoading()
    //   }
    // },
    //更新用户信息
    updateUserInfo(userInfo) {
      return new Promise((resolve, reject) => {
        let sexObj = {
          "0": 2,
          "1": 1,
          "2": 0
        };
        api.request({
          url: '/userInfo/updateApplet',
          method: 'POST',
          data: {
            name: userInfo.nickName,
            image: userInfo.avatarUrl
          }
        }).then((res) => {
          resolve(res);
        }).catch((err) => {
          reject(err);
        });
      })
    },
    //显示隐藏弹层
    setShowLayer(e) {
      let {
        value
      } = e.currentTarget.dataset;
      this.setData({
        userInfo: app.globalData.userInfo,
        isShowLoginLayer: value
      }, () => {
        wx[value ? 'hideTabBar' : 'showTabBar']({
          animation: false,
        })
        //点击取消 是否有分享页面进行跳转
        if (!value && app.globalData.shareUrl) {
          let shareUrl = app.globalData.shareUrl;
          app.globalData.shareUrl = null;
          app.commonNavigateTo(shareUrl);
        }
      })
    },
    //追加微信用户信息
    appendUserInfo(userInfo) {
      wx.showLoading({
        title: '正在处理',
        mask: true
      })
      // 登入提示
      app.globalData.loginTips = true;
      let newUserInfo = Object.assign({}, app.globalData.userInfo, userInfo,{
        userPhoto:userInfo.avatarUrl,
        userName:userInfo.nickName
      });
      this.setData({
        userInfo: newUserInfo
      })
      //微信用户信息入库
      this.updateUserInfo(newUserInfo).then((resp) => {
        app.globalData.userInfo=newUserInfo;
        //存储
        wx.setStorageSync('loginUserInfo', app.globalData.userInfo);
        this.triggerEvent('loginok', app.globalData.userInfo);
        wx.hideLoading();
        //是否有分享页面进行跳转
        if (app.globalData.shareUrl) {
          let shareUrl = app.globalData.shareUrl;
          app.globalData.shareUrl = null;
          app.commonNavigateTo(shareUrl);
        }
      }).catch((err) => {
        wx.showToast({
          title: err.msg,
          icon: 'none',
          duration: 2000
        })
      });
    },
    //通过点击按钮获取用户信息回调
    manualGetUserInfo(e) {
      this.setShowLayer({
        currentTarget: {
          dataset: {
            value: false
          }
        }
      });
      //追加微信用户信息
      this.appendUserInfo(e.detail.userInfo);
    },
    //旧版getUserInfo获取用户信息
    getUserInfo() {
      this.setShowLayer({
        currentTarget: {
          dataset: {
            value: false
          }
        }
      });
      wx.getSetting({
        success: res => {
          // 已经授权
          if (res.authSetting['scope.userInfo']) {
            wx.getUserInfo({
              success: res => {
                //追加微信用户信息
                this.appendUserInfo(res.userInfo);
              }
            })
          } else {}
        }
      })
    },
    //新版getUserProfile获取用户信息
    getUserProfile() {
      this.setShowLayer({
        currentTarget: {
          dataset: {
            value: false
          }
        }
      });
      wx.getUserProfile({
        desc: '用于完善用户信息',
        success: (res) => {
          //追加微信用户信息
          this.appendUserInfo(res.userInfo);
        },
        fail: (err) => {

        }
      })
    }
  },
  attached() {
    this.setData({
      userInfo: app.globalData.userInfo || {}
    }, () => {
      if (!wx.getUserProfile) {
        //旧版，如已授权可自动获取
        this.getUserInfo();
      }
    })
  }
})